flowchart TD
%% Main title
title["BlockBench Framework Architecture"]
%% Main Layers
WL[Workload Layer\nYCSB, Smallbank, EtherId, DoNothing]
EE[Execution Engine Layer\nSmart Contracts, Virtual Machines]
CL[Consensus Layer\nPoW, PBFT, PoS, Raft]
DM[Data Model Layer\nKey-Value Store, Account/State Model]
BP[Blockchain Platforms\nEthereum, Hyperledger Fabric, Parity, Quorum]
%% Left side - Drivers
DI[Drivers & Interfaces]
D1[Macro Benchmarks]
D2[Micro Benchmarks]
D3[Smart Contracts]
D4[Client APIs]
D5[Asynchronous]
%% Right side - Metrics
PM[Performance Metrics]
M1[Throughput]
M2[Latency]
M3[Scalability]
M4[Fault Tolerance]
M5[Security]
%% Connections for main flow
title --> WL
WL --> EE
EE --> CL
CL --> DM
DM --> BP
%% Connections for drivers
DI --> D1
DI --> D2
DI --> D3
DI --> D4
DI --> D5
D1 --- WL
D2 --- EE
D3 --- EE
D4 --- CL
D5 --- DM
%% Connections for metrics
PM --> M1
PM --> M2
PM --> M3
PM --> M4
PM --> M5
M1 --- WL
M2 --- EE
M3 --- CL
M4 --- CL
M5 --- DM
%% Styling
classDef workload fill:#d1e7dd,stroke:#198754,stroke-width:2px
classDef execution fill:#cfe2ff,stroke:#0d6efd,stroke-width:2px
classDef consensus fill:#f8d7da,stroke:#dc3545,stroke-width:2px
classDef datamodel fill:#fff3cd,stroke:#ffc107,stroke-width:2px
classDef platforms fill:#e2e3e5,stroke:#6c757d,stroke-width:2px
classDef drivers fill:#e2e3e5,stroke:#6c757d,stroke-width:1px
classDef metrics fill:#e2e3e5,stroke:#6c757d,stroke-width:1px
classDef title font-size:18px,font-weight:bold
class WL workload
class EE execution
class CL consensus
class DM datamodel
class BP platforms
class DI,D1,D2,D3,D4,D5 drivers
class PM,M1,M2,M3,M4,M5 metrics
class title title